home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / QuakeTools / src / libqdisplay / 3d.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-11  |  2.1 KB  |  78 lines

  1. #ifndef D3_H
  2. #define    D3_H
  3. #include "vesa.h"
  4. #include "main.h"
  5. #include "tables.h"
  6.  
  7. /*
  8.  * ============================================================================
  9.  * structures
  10.  * ============================================================================
  11.  */
  12.  
  13. #define CC_OFF_LEFT    1
  14. #define CC_OFF_RIGHT   2
  15. #define CC_OFF_TOP     4
  16. #define CC_OFF_BOT     8
  17. #define CC_BEHIND      16
  18. #define WALL_TYPE    (~CONTENTS_SOLID)    // -2
  19. #define WATER_TYPE    (~CONTENTS_WATER)    // -3
  20. #define SLIME_TYPE    (~CONTENTS_SLIME)    // -4
  21. #define LAVA_TYPE    (~CONTENTS_LAVA)    // -5
  22. #define SKY_TYPE    (~CONTENTS_SKY)        // -6
  23. #define TELEPORT_TYPE    (~(-7))
  24. #define OTHER_TYPE    (~(-8))
  25. #define ANIM_TYPE    (~(-9))
  26.  
  27. //#define    FIX_INT(x)    (((x) + 32768) >> 16)
  28. //#define    FLOAT_TO_INT(x)    ((int)((x) + 0.5))
  29. //#define    FLOAT_TO_FIX(x)    (FLOAT_TO_INT(scalw((x), 16)))
  30. #define    FIX_INT(x)    (((x) + 65535) >> 16)
  31. #define    FLOAT_TO_INT(x)    ((int)(x))
  32. #define    FLOAT_TO_FIX(x)    ((int)((x) * 65536))
  33.  
  34. typedef int fix;
  35.  
  36. typedef struct {
  37.   int tx, ty, tz;
  38. } angvec;
  39.  
  40. typedef struct {
  41.   vec3_t p;
  42.   unsigned char ccodes;
  43.   unsigned char pad0, pad1, pad2;
  44.   fix sx, sy;
  45.   float u, v;
  46. } point_3d;
  47.  
  48. /*
  49.  * ============================================================================
  50.  * globals
  51.  * ============================================================================
  52.  */
  53.  
  54. extern float clipScaleX, clipScaleY, incSpeed, maxSpeed, decSpeed;
  55. extern vec3_t cameraLocation, currentSpeed, old_cam_loc;
  56. extern bool changedLocation, changedAngles;
  57. extern angvec cameraAngles;
  58. extern struct dplane_t planes[4];
  59. extern float xCenter, yCenter;
  60.  
  61. /*
  62.  * ============================================================================
  63.  * prototypes
  64.  * ============================================================================
  65.  */
  66.  
  67. void compute_view_frustrum(void);
  68. float dist2_from_viewer(vec_t *in);
  69. void init_tables(void);
  70. void set_clip_values(int width, int height);
  71. void set_view_info(void);
  72. void transform_point(point_3d * p, vec_t *v);
  73. void transform_point_raw(vec_t *out, vec_t *in);
  74. void transform_rotated_point(point_3d * p);
  75. void transform_vector(vec_t *out, vec_t *in);
  76.  
  77. #endif
  78.